//
//  main.m
//  02_ClassAndObject
//
//  Created by dllo on 16/7/5.
//  Copyright © 2016年 dllo. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[]) {
#if 1
    {
    /*
     1.快捷键
     * command + 0 开/收左边栏
     * command + option + 0 开/收右边栏
     * command + shift + Y 开/收下边栏 
     * command + shift + Z 反撤销
     * 2.移动光标
     * command + ← / →
     * 3.选中文字
     * shift + ← 选中向左一个字
     * shift + → 选中向右一个字
     * shift + ↑ 从当前光标位置开始, 选中向上一行,对应位置
     * command + shift + ← 选中从光标开始,左边所有的文字
    */
    
    /* 1.类和对象
     * 类: 一个具有相同特征和行为的事物抽象集合
     * 对象: 类的实例, 也称作类的实现
     * 面向对象的思想, 万物都是对象
     * 面向对象语言是面向对象思想的具体体现
     * OOP 面向对象编程
     * OOD 面向对象设计
     * 面向对象三大特征 封装 继承 多态
     
     * 2.Objective-C
     * 与C语言的区别
     * OC属于C语言的扩展
     * OC有类的概念
     * 声明属性和方法在 .h中 具体实现在 .m中
     * .mm 是C++的文件
     
     * 3.创建OC的实例
     * 1 消息语法 
     * 实例方法调用 [objc doSomething];
     * 向objc对象去发送一个doSomething的方法,让他去调用
     * 类方法的调用(类名调用该类的+号方法)
     */
    
    Person *per = [[Person alloc] init];
    // 公开的成员可以直接通过 ->赋值 ->取值
    per->_age = 10;
    NSLog(@"%ld", per->_age);
    // 受保护的成员不能通过->去访问

    // id 与 instancetype
    // instancetype 在作为参数返回值的时候与id是一样的,系统编译器会把id类型转成instancetype类型
    // id可以作为变量类型去使用, 但instancetype不可以
    }
#endif
    

    return 0;
}
